package string;

public class StringDemo {
    public static void main(String[] args) {
        String s1 = "123abc";//常量池中没有,创建字符串对象并存入常量池中;
        String s2 = "123abc";//常量池中有了,直接复用;
        String s3 = "123abc";//常量池中有了,直接复用;
        System.out.println(s1==s2);//true
        System.out.println(s1==s3);//true
        System.out.println(s2==s3);//true
        //字符串对象一经创建,对象内容不能改变
        s1=s1+"!";//创建新的字符串对象并赋值给s1;
        System.out.println(s1==s2);//false
        String s4="123abc";
        String s5="123"+"abc";
        System.out.println(s4==s5);//true,两个字面量连接可以
        String s6="123";
        String s7=s6+"abc";
        System.out.println(s4==s7);//false,变量与字面量连接不行

        String o1=new String("hello");//创建两个对象,字面量对象"hello"和String对象"hello"
        String o2="hello";//创建了一个字面量对象"hello"
        System.out.println(o1==o2);//false
        System.out.println(o1.equals(o2));//true,equals()比较两个字符串内容是否相等
        System.out.println(s4.equals(s7));//true
    }
}
